Skip to content

Use -XX:+IProfileDuringStartupPhase in populate_scc.sh scripts#564

Merged
leochr merged 1 commit into
WASdev:vNextfrom
rmnattas:scc_IProfileDuringStartupPhase
Jan 5, 2024
Merged

Use -XX:+IProfileDuringStartupPhase in populate_scc.sh scripts#564
leochr merged 1 commit into
WASdev:vNextfrom
rmnattas:scc_IProfileDuringStartupPhase

Conversation

@rmnattas

@rmnattas rmnattas commented Nov 7, 2023

Copy link
Copy Markdown
Contributor

Add -XX:+IProfileDuringStartupPhase option to the populate scc script

When populating the SCC during the build of both the Liberty and app containers, the JVM can disable the IProfiler collection during JVM startup to enhance startup time, but this limits the amount of IProfiler information that can be stored into the SCC.

OpenJ9 can now support -XX:+IProfileDuringStartupPhase to enforce collecting IProfiler information during startup and better populate the SCC, which can be used in the populate_scc.sh script.

The option will be ignored if the used OpenJ9 build does not have the new option implemented.

Effect is larger amount of JIT Data in the SCC after a populate_scc run.
There’s no functional implications on Liberty, and performance effect is application dependent.

In AcmeAir micro-services we see a jump in the amount of JIT Data stored in the SCC when using this option in the populate_scc.sh script, from 140KB to 524KB (and from 132KB to 388KB for the Liberty container layer). Performance effect shows around 1.5% better throughput with default setup, and no noticeable rampup change. I don’t have results on startup effect, but warm/production-runs won’t use the option.

Other than OpenJ9 testing, we have used the option in the populate_scc.sh script during the CI process of building the containers.

OpenJ9 PR: eclipse-openj9/openj9#18381

Corresponding OpenLiberty PR: OpenLiberty/ci.docker#482

@CLAassistant

CLAassistant commented Nov 7, 2023

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@rmnattas

rmnattas commented Nov 7, 2023

Copy link
Copy Markdown
Contributor Author

@leochr

@rmnattas rmnattas force-pushed the scc_IProfileDuringStartupPhase branch from fcf55a1 to f52d768 Compare November 23, 2023 15:16
@leochr

leochr commented Dec 8, 2023

Copy link
Copy Markdown
Member

@rmnattas Thanks for the PR. The change itself looks fine. Few comments:

  • please target the vNext branch as that's used for dev
  • since there could be some impact to applications, it'll be good to deliver the change to upcoming releases of Liberty only and not update existing releases
  • does Open Liberty also require similar PR? https://github.com/OpenLiberty/ci.docker

@rmnattas rmnattas force-pushed the scc_IProfileDuringStartupPhase branch from f52d768 to b6232c7 Compare December 8, 2023 21:26
@rmnattas rmnattas changed the base branch from main to vNext December 8, 2023 21:26
@rmnattas

rmnattas commented Dec 8, 2023

Copy link
Copy Markdown
Contributor Author

Thanks @leochr, updated the PR as requested (changing version 23.0.0.12 and latest only in vNext).
The OpenLiberty version is at OpenLiberty/ci.docker#482.

Make use of `-XX:+IProfileDuringStartupPhase` in the `populate_scc.sh`
script to enforce collecting IProfile information during JVM startup
phase and have more information to store into the SCC.

Signed-off-by: Abdulrahman Alattas <rmnattas@gmail.com>
@rmnattas rmnattas force-pushed the scc_IProfileDuringStartupPhase branch from b6232c7 to 3957a24 Compare January 3, 2024 19:55
@rmnattas

rmnattas commented Jan 3, 2024

Copy link
Copy Markdown
Contributor Author

@leochr Updated the PR to modify 24.0.0.1 and latest instead. Similarly for OpenLiberty/ci.docker#482

@leochr leochr merged commit 3d2c3c2 into WASdev:vNext Jan 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants